Log In  
BBS > Lexaloffle Community Superblog
This is a combined feed of all Lexaloffle user blogs. For Lexaloffle-related news, see @zep's blog.

All | Following | PICO-8 | Voxatron | General | Off-site
[ :: Read More :: ]

This post is just to have a BBS cart upload
for a full game page : (https://mitch-match.itch.io/switch-block-dungeon)
for a full dev log: (https://www.lexaloffle.com/bbs/?tid=42831)

Cart #switch_block_dungeonv1-0 | 2021-10-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

P#98183 2021-10-04 06:18
[ :: Read More :: ]

Cart #stargate-12 | 2022-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
29

Warning : Just like the original game did, this game's visual effect may cause photosensitive epilepsy for some people. Be careful if you had a hard time playing the original defender or stargate.

This is a port of Eugene Jarvis' legendary title Stargate, a sequel to Defender.

I did my best to make it as faithful as possible but the difficulty is intentionally lower than the original, so it won't be so frustrating.

Protect 10 humanoids from the aliens and prevent the planet destruction. Your new friend, Stargate will help your mission by quickly sending you to the desired area when a humanoid is in danger. By collecting 4 humanoids and getting into stargate, you can warp 3 waves.

Controls :

X : fire laser

Z : Invisto

Z while holding X : Smartbomb

Z when you had ran out of invisto : Hyperspace

P#98182 2021-10-04 02:42 ( Edited 2022-04-26 00:36)
[ :: Read More :: ]

Cart #strong_and_stable-0 | 2021-10-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

A game for LD49. Fight an angry Theresa May who is no longer "Strong and Stable"! Based on a silly piece of British Political Humour.

P#98177 2021-10-03 22:27
[ :: Read More :: ]

My Ludum Dare 49 Game "Frappy Clow"!!

Made in 48 hours by myself.

--Controll

arrow -> move

z -> jump

x -> pary, reflection

--

Enjoy!!

If you meet any troubles or bugs, please send me.

Cart #ld49flappycrow_3-0 | 2021-10-03 | Code ▽ | Embed ▽ | No License
1

P#98176 2021-10-03 22:11 ( Edited 2021-10-04 04:14)
[ :: Read More :: ]

Cart #brake_machine_broke_ld49-1 | 2021-10-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

I'll be real, I totally forgot Ludum Dare was even a thing until about two weeks ago, so this kinda caught me off-guard, but I actually made a thing this time! Maybe should've spent more of the last 48 hours actually working on it, but even if it's not as great as I'd hoped, it's more than I expected. No built-in restart feature, so the cart will need to be reset for each new attempt (pause/press ENTER and select "RESET CART" from the menu).

CONTROLS:
-Press X to start
-Press the Left and Right arrow keys to turn the car left or right

Please note: this game IS kind of difficult, and each run isn't supposed to last very long (after all, if the car could be driven reliably for a length of time, it wouldn't be very unstable, would it?). As such, taking two or three runs is encouraged to get a feel for the track/controls (think of an RC car that can only turn at sharp right angles).

P#98167 2021-10-03 18:27 ( Edited 2021-10-04 09:13)
[ :: Read More :: ]

I've made a couple of carts that I plan to use as a visual installation.
My setup is this:
One loader cart that selects a random number as index.
The loader cart uses the random number to index and load one of the visualiser carts.
When the visualiser cart has run for some time, it loads the loader cart again.
Repeat infinitely

The setup works pretty decent, but I have two issues:
Often the same visualiser cart gets selected several times in a row.
The random number generator tends to select some of the carts far more often than others.

My idea was to create an array that saves the indices in the loader cart. If the index is in the array, it should select a new number.
The issue is that the array in the loader cart doesn't seem to persist in between loads.
I tried passing the array to the visualiser cart but stat(6) doesn't seem to accept arrays.

Am I overcomplicating things and there's a simpler way to do it?

P#98164 2021-10-03 13:58
[ :: Read More :: ]

Cart #aliendisco-0 | 2021-10-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

“The one thing that can solve most of our problems is dancing.” - James Brown

You’re a little alien trying to impress your alien friends on the dance floor. They seem particularly excited when the dance moves they want to see match the disco lights you move through.

Unfortunately these lights as well as the audience's taste are quite unstable and change their patterns constantly. And oh no, add to that your unstable little alien body that leaks stamina every second you dance. To crown it all, the unstable sound system pumps out increasingly alien (duh!) music over time as well.

Can you still find the matching moves in all this craze and keep the buzz going?


Made by Fabian Fischer (Twitter: Ludokultur) for the Ludum Dare 49 Compo (theme: unstable).

Instructions:

  • Arrow keys to move
  • Hold X to dance
  • Press C to start game
P#98160 2021-10-03 13:13 ( Edited 2021-10-03 13:44)
[ :: Read More :: ]

a simple ball demo
control the ball with the arrow keys, press z and x for fun

Cart #bofegmabu-0 | 2021-10-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#98159 2021-10-03 12:59
[ :: Read More :: ]

Cart #dubosasbo-0 | 2021-10-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hey all! I wanted to try my hand at making a small PICO-8 game. Currently you can only fly around with the arrow keys, but I hope to add planetoids or enemies later.

P#98135 2021-10-02 21:02 ( Edited 2021-10-02 22:21)
[ :: Read More :: ]

When you want to use the shared part of the worldmap, you can only definied 127 Sprites. In Map-Editor the high-bit 0x80 is completly unused.

It would be nice to set a "Map mode" to use this "wasted" bit. Possible solutions would be one of this

  • Flip X
  • Flip Y
  • Use second palette / apply fill pattern

With Flip you can simple reduce the needed sprites with flipping:
[16x16]

Also second palette you can reuse sprites like here (cloud/bush)
[24x16]

oh, and of course a combination would be nice:
[16x16]

It would be nice to set all effects for every cell, but we only have one bit....

Maybe an additional mode would be nice

  • flip depending on screen quarter
    [16x16]

    But this could be a little bit confusing. It should orientate on Map-Values, not display.
P#98122 2021-10-02 13:12
[ :: Read More :: ]

When trying to save a gif longer than 90 seconds on Linux, PICO-8 runs into a segmentation fault (91s crashes, 90s doesn't)
This seems to be happening in a call for free() inside the gif_free_all function
Windows works fine up to the limit of 120s, haven't tested on Mac.

P#98108 2021-10-01 23:55
[ :: Read More :: ]

my left and up arrow, are stuck in just the web pico x_x

P#98094 2021-10-01 17:44
[ :: Read More :: ]

Cart #rtype-5 | 2022-04-12 | Code ▽ | Embed ▽ | No License
173

After months of hard work, here is the NEW release (1.3) of Irem’s R-Type* pico-8 port, featuring the 4 stages in a 32kb cart! (Similar to the PC-Engine port, with 4 in a 256kb hu-card.)

In addition, there are:

  • 30 enemies with most attack patterns and weapon replicated (albeit simplified)
  • 4 HUGE bosses
  • 3 force types with 2 levels of power
  • 60 fps action with arcade-style graphics
  • Awesome 5 tracks soundtrack by the great @dhostin (YouryKiki) based on Masato Ishizaki's original score, you can listen to the OST on SoundCloud

Hope you enjoy it and please, give me some feedback on performance, especially on lower-end machines.

TheRoboZ

Instructions:

🅾️ button to shoot, hold to charge the beam
❎ to detach/recall the force sphere. (hold to auto-fire. after a while auto-firing will detach the force so be careful!) The force can be positioned in front and behind, has 3 powers up levels and can be used defensively too, absorbing the small enemy bullets.

(I strongly suggest to play with keyboard or pad as on the phone it might be a bit harder)


Version 1.4

  • FIXED fsign bug reported on April 11
  • Token reduction
  • Optimized sprite rotation
  • Picodraw cached string to table conversion
  • Fixed bug in detaching cargo in stage 3
  • Improved collision bounding boxes in soem cases
  • Beam draw improvement

Version 1.3

  • fix for pico 0.2.4 black palette bug
  • fixed stage 2 music bug, boss music plays again if coming from stage 1
  • added score recap at stage clear

Version 1.2

  • stage 4 (2 new enemies and 1 new boss)
  • NOTE: stage 4 boss cannot be damaged with normal bullets, you need to use the beam or a force weapon

  • soundtrack available on https://soundcloud.com/youry-kiki/sets/r-type-pico8
  • swapped fire buttons

  • increased special weapon damage
  • added different explosion for missiles
  • fix autofire too fast with force weapons
  • fix autofire firing force while holding button down
  • fixed circle beam/missiles gfx
  • fixed missiles explosion drawn twice
  • missiles only seeks forward as in arcade
  • misc. fixes/improvements to better match arcade version

Version 1.1

  • auto-fire if you hold down (❎), see instructions. thanks @dw817
  • fixed shooting/sounds after death, thanks @Felice
  • fixed problems with music cues/checkpoint restarting and enemy removal(stage 3 mainly) after player death
  • fixed missiles not resetting after player death, thanks to @extar and his awesome let's play
  • fixed excessive beam damage due to being stuck in some situation where a bg tile was behind an enemy (first and third bosses as seen in @extar 's video

What’s missing compared to the arcade (mainly down to token limit):

  • "Option bits" power up (little spheres flying above and/below the ship)
  • continue screen/high scores table
  • The pow-capsule enemy doesn't land/walk
  • No 1-up

Development Notes:

The idea for this came as a way to expand and improve the background graphic system of my previous Masters of the Universe game with scrolling, meanwhile implementing more functionality in picodraw as explained here.
I am pretty satisfied with the technical results and picodraw now evolved a lot with the addition of cloning groups and sprite support. Programming the game was a fun “old times” experience since I had no idea how the original worked and had to keep playing on M.a.M.E. trying to understand enemies patterns, but got a bit tedious at time, while fighting token limits to implement them, specially near the end.

Thank you

The following contributions taught me some incredible techniques that allowed me to complete the game

@sparr/ @Felice for their fillp extension that allows object coordinates fill patters, without this I wouldn’t even have tried as the jittering was really annoying,

@Freds72/@paranoidcactus for their Journey to poom article
showing me the invaluable “properties factory” function that I adapted to my needs and saved me at least 3 times when I overshot token limits. Freds72 also contributed some last minute optimization tricks that will probably allow me an additional update.

@ElGregos for his snake tweetcart, showing me a simple way to implement a more complex movement for the second boss

Without the above, the game would have been way more limited

*R-Type is a side-scrolling shoot'em up game, and the first game in the series. It was originally released in July 1987 by Irem for the Arcades, with ports to home consoles and computers in the following years.

P#98070 2021-10-01 02:28 ( Edited 2022-04-12 00:29)
[ :: Read More :: ]

Cart #siharafasu-0 | 2021-10-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

WIP for a simple golf game I have been working on.

P#98069 2021-10-01 01:25
[ :: Read More :: ]

Cart #mot_grandprix_editor-2 | 2021-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
14

This is the track editor for Mot's Grand Prix

I don't recommend running this in browser as you cannot save/load tracks - anything you build will be lost.
Rather download the file and run it in Pico-8 itself.

You will also need to download the main game and run it in Pico-8 in order to race on any tracks you create.

This editor requires a keyboard and mouse.

Existing tracks

You can download the tracks from the existing game from this Google Drive folder. Place them in your carts folder (next to the editor) then select "Load" from the editor hamburger menu (top right) to load them.

Basic usage

IMPORTANT: There are known bugs that will crash the editor, so save often!

  • Use the arrow keys to scroll along the track.
  • Use the hamburger menu (top right) to load save and export tracks.
  • The "New" menu creates new stages, curves and items (described in detail further down).
  • Click "Drive" to drive on the track (select "Editor" from the pause menu to return to the editor).
  • Select things by clicking on them. You can then edit their properties, or delete them by clicking "-".
  • After making a change you usually have to click "Update" (bottom right) to update the visual model (I didn't have enough tokens to make this automatic).

Track format

The basic components of a race track are:

  • Stages
  • Curves
  • Items

Stages

Are used to partition the race track. Every track must have at least one stage.
The advantage of having multiple stages is that their curves and items are stored independently of the other stages, so if you modify the curves in a stage you only need to fixup the positions of the background items within that stage. Also they can help you keep track of what part of the track you are working on.

Click "New->Stage" to add a new stage. The new stage will be inserted immediately after the current stage.

The current stage is displayed top-left underneath the menu bar.

You can click on the name to edit it. Or click "-" to delete it.
Deleting a stage deletes all its curves and background items, so be careful.

Curves

Curves define the shape of the race track, i.e. the corners, straights, hills, valleys etc.
Note: Despite the name a "curve" doesn't have to actually curve. It can be completely straight.

Click on the race track itself to select a curve.

Click "New->Curve" to add a new curve.
If a curve is already selected, the new curve will be inserted immediately before it in the current stage.
If no curve is selected, the new curve will be added to the end of the current stage.
To delete the curve, select it and click the "-" button next to the curve (NOT the one next to the stage!)

Edit the curves properties to modify it.
Most properties are edited using sliders. Drag with the left mouse for small increments and right mouse for large.
Remember to click "Update" to see the result of a change.

  • Length = Length of the curve in units (units are about 4-10 meters long - scale isn't very accurate in this game)
  • Turn = How sharply the road turns. 0 is straight, negative values turn left, positive turn right.
    For reference the hairpin turn in "Suzuka" is -0.32, which is close to the limit of how sharply cars can corner in this game.
  • Pitch = Vertical gradient. 0 is flat, -1 is up 45 degrees, 1 is down 45 degrees.
    Pitch is an optional property. Tick the tick-box to enable it. If omitted the pitch from the previous curve will be used.
    Pitch is linearly interpolated. The value you set is actually the pitch at the end of the current curve. It will smoothly transition from the previous pitch to that value across the curve.
  • Left/Right = Define the horizontal range, i.e. how far left/right cars can go without crashing into a barrier.
    The left and right barriers are visually represented by the "L Barrier" and "R Barrier" settings below. It's a good idea to set these - otherwise the player will simply crash into an invisible barrier.
    The road is 8 units wide, so the "Left" usually is -4 or less, and right 4 or greater, although they can be set to -3/3 to clip into the gravelly region of the road. The AI cars expect the full width of the road to be available though, so be careful when doing this.
    Left/right are also optional, linearly interpolated properties.
  • L Barrier/R Barrier = Define the visual left and right barriers. Each one is a list of item types that will be repeated. Tick the tick box to specify the barrier type, then click "[New]" to add an item type.
    Select the item type from the list (use the mouse wheel to scroll). Make sure to only select item types starting with "Barrier_" (I didn't have enough tokens to automatically filter the list).
    Generally it makes sense to use just one barrier types, or combine "Barrier_Fence" with one of the other types.
    L Barrier/R Barrier are optional.
  • Trees = Generate random trees on the left/right side of the map.
    This is a list of horizontal positions to place the trees at trees' horizontal positions vary randomly by a few units as well.
    Trees are optional.

Items

Items are background items, like stadiums, buildings, signs. They don't affect gameplay, but make the track look more alive.
Click on a background item to select it.
You can also use the "<" and ">" buttons to cycle through the items in a stage (useful if you accidentally place one in a position where it is never visible and can't be selected normally).
Click "New->Item" to create a new item, then select the item type from the list (mouse wheel to scroll).
The item will be created in the current stage, a few units in front of the camera.
To delete the item, click the "-" button next to it.

Background items have 3 properties representing their position relative to the race track.

  • X = Horizontal position relative to the race track (negative = left, positive = right)
  • Y = Vertical position relative to the ground (negative = up, positive = down)
  • Z = Distance along track from start of stage.

Other properties

You can also edit the sky and ground colours by selecting "Properties" in the hamburger menu.

Generated content

The following items are generated automatically and cannot be edited:

  • Race track shoulder things (I tried to Google for the proper name, but only found things that stop horses from biting your shoulders...)
  • Distance to turn signs
  • Racing line markers

Exporting

To race on your track in the actual game, you need to export it:

  1. Click "Export" in the hamburger menu. This will copy a string to the clipboard.
  2. Open up "Mot's Grand Prix" in Pico-8.
  3. Open tab 8.
  4. Choose a track to replace (there isn't enough compressed space left to add any more).
  5. Replace the string for one of the existing tracks. Be sure to switch to "Puny font" mode (press Ctrl+P) before pasting from the clipboard.
  6. Optionally edit the "finline" variable to set the finish line distance.
  7. If you want to change the track name on the start screen, edit the "tracknames" variable in tab 1.

Your track should now be in the game.

P#97963 2021-09-30 23:37 ( Edited 2021-10-09 11:58)
[ :: Read More :: ]

by GPI
Cart #picman-1 | 2021-10-02 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
47

Controls

It is a Pac-Man close, so simple use the direction-buttons to control Pic-Man.

Rules

[24x16]

You control Pic and your goal is to eat all pills to win the maze.
[16x16]

Don't touch the ghosts, they will kill you.
[16x16]

When you eat a power pill you become strong enough to eat the ghosts.
[16x16]
[16x16]

In every maze two fruit will appear in the middle of the maze, don't miss them.
[64x8]

Every 1000,2000,4000,... points you get a extra live.

Behind The Scenes

I watched URL Game Maker's Toolkit and was amazed, how "complex" the ai of the ghost are. Since Pic-Man was my first PICO8-Project I decide to re-program Pac-Man. And so many problem started.
First problem, the maze, with a 8x8 tile size it is simple to big for the 128x128 screen. 6x6 would fit, but the map-system is not flexible enough. And so I remembered, that on the old classic c64 you often used the print-command. And again a new problem, how to design the font and how to store it? So hours later a created a URL CharSet Editor and this problem was solved. So the maze is on the screen, now place the pills. First I tried to place the pill exact like the original, but it doesn't work, since my maze is compacter. So i placed more pills and between the "tiles". First I used sprites to draw the pills-dot, in other systems it is nearly always better to use a sprite/texture instead of drawing direct. Big mistake, it will consume around 90% of the virtual cpu - so I changed it to pset()-commands and now I only consume around 50%.
Next step: The main character. Not difficult, he simple runs in tiles and can only change the direction on every tile. The first version couldn't go backwards, but because in the first levels Pic-Man is faster then the Ghost, I changed this. Also the Original could do this. To draw Pic-Man I used 4 sprites, since I only draw a quarter of Pic-Man and use the flip options of the spr-command.
I wanted as less sprites as possible.
The ghost AI was also many try and errors. My ghost react a little different from the original, they have similar behave, but the ghost go more randomized. Also one Ghost really like the fruits. One Problem was, that it could happen, that two ghosts are run exact the same way and nearly the exact same position. So now when two ghost touch each other and go to the same direction, I forced to change one to choose a different direction at the next possible tile. Same as Pic-Man, the ghost are 4 Sprites. Two for the top, one for the bottom (because of the wave-animation) and the eyes.
So now how to create the title-screen. I don't find that the original looks nice, so I searched for artwork. And the next problem - how can I got a picture to a PICO8-rom? Again hours later a new tool was born: URL GFXedit. I used only the the shared part of the spritesheet to save the graphic for the title screen. My plan was to use more artwork and replace the shared part. At the end I only add a game over screen, because I run out of space.
So next big problem Music. I'm not a musician and have no idea of music work. I don't like the original wakka-wakka sound of Pac-Man, I like more the Pac-Mania-Music, but how transfer this to PICO8? Midi-files would maybe a solution, but PICO8 can't open it and I have no idea, how the midi-files work. By accident I found MuseScore 3 and the possibility to export to musicxml, a text-based format. So again hours later a wrote a little program to convert the musicxml to pico8 (Sorry unpublished at the moment, because it miss any interface). I'm not really happy with it, but it work.
In the first version I only add one Level, the original one. But since I draw 12 Fruits, I want more than one level. This was first a problem, because I added the pill-position as static data, now I must phrase the level-data to generate the Borders, add the pills, where the fruit appears and where the ghosts and Pic-Man starts. You can edit the mazes in the source-code and more, if you like.
Since the music used much more than 64 sfx-sounds, I placed the sound-date in the sourcecode. I have optimized the data-format (first one was a big hex-string [[0000a0e01002]], second improve the format [[,,a0,e0,10,2]] and the third uses a special-char-format, so it used nearly everywhere only one char per byte. BTW. one song is too long, it has more than 64 sfx. When the first part is finished, I poke new sfx and music-data in the memory and play part 2.
I had planed to add a third song, but he doesn't sound good and I had again a Problem: over 100% compression. Sadly I must delete the first tab of the code - a big comment with the global variables and what they do.
Now the project is complete - It missed the Intermission from the original, but I have no place any more. I also don't have a good idea to add new ones...
And finally I add a volume-control. It live-patch the sfx-data to reduce the volume.

Very long text - did someone read it complete?

Credits

Used Tools

URL CharSet Editor
URL GFXedit
MuseScore 3
Corel PaintShop Pro X7

Used resources

URL Pac-Man Wiki - Pac-Man Gallery
URL Pac-Man Maze Generation
URL Pac-Man by MineWarz
URL GAME OVER
URL Pac Man Death by YaketyGrass
URL Block Town / Sequenced by: Oedipus / Originally Composed by: Ben Daglish
URL Pacman's Park / Sequenced by: Oedipus / Originally Composed by: Ben Daglish

P#98065 2021-09-30 22:02 ( Edited 2021-10-02 19:11)
[ :: Read More :: ]

Hi guys.
I just thought I'd share what I have achieved so far.
Not much, I know, but it's slow progress.

Arrows, left and right to run.
Z to double jump/stomp on ground.
X to jump

I'm not overly happy with the bounce about that the bad guys to when they get ground stomped.
Sometimes they bounce too high and long, other times, hardly at all.
I have no idea how to fix that!

The spider, finding the highest level through a gap, I'm quite pleased with.

Have a looky, see what you think.

Cheers

Cart #zukizuzomi-4 | 2021-09-30 | Code ▽ | Embed ▽ | No License

P#98064 2021-09-30 20:58
[ :: Read More :: ]

Cart #voronoi_shader_1-0 | 2022-03-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Left/Right: change shader
Up/Down: change number of nodes
z: shuffle nodes

A cart for messing around with raster patterns. I love drawing shapes without actually drawing shapes, if you see what I mean.
The "shaders" are just simple formulas to select the pixel colour based on distance to the nearest two nodes.
Interlaced scan speed adapts when the number of nodes changes.

2022-03-09 - slight speed improvements, tweaked the adaptive bit.

P#98057 2021-09-30 20:16 ( Edited 2022-03-09 22:08)
[ :: Read More :: ]

Arrow keys to stretch and squash the curve, "c" to confirm once your curve matches the given curve.
To add: time limit, title screen, sound, pretty background.

Cart #sinematch-1 | 2021-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

P#98058 2021-09-30 20:15 ( Edited 2021-09-30 20:15)
[ :: Read More :: ]

Cart #basic_visualizer-1 | 2021-09-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

A Very Basic Visualizer I made. Feel free to play around with it at your leisure!

P#98052 2021-09-30 19:15 ( Edited 2021-09-30 19:40)
View Older Posts